package org.ccu.eshop.service;

import org.ccu.eshop.domain.dto.CartSelectedMerVo;
import org.ccu.eshop.domain.dto.CartVo;
import org.ccu.eshop.domain.dto.OrdersVo;

import java.math.BigDecimal;
import java.util.List;

public interface ShopCarServiceltface {
    /**
     * 获得购物车
     * @param id
     * @return
     */
    CartVo getShopCar(Integer id);

    /**
     * 按照购物车编号获得购物车里的商品详情
     * @param id
     * @return
     */
    List<CartSelectedMerVo> getCarSelectMerListByCar(Integer id);

    /**
     * 把商品添加到购物车
     * @param id
     * @param merId
     * @param favourable
     * @return
     */
    boolean addShopCar(Integer id, String merId, Integer favourable);

    /**
     * 更新购物车内的商品项（针对在购物车中已存在的商品）
     * @param id
     * @return
     */
    boolean updateCartSelectedMerNumber(Integer id,Integer cart);

    /**
     * 根据购物车编号 和商品编号 查询购物车详情
     * @param cart
     * @param merId
     * @return
     */
    CartSelectedMerVo getCarSelectMerByCartAndMid(Integer cart, String merId);

    /**
     * 更新购物车内的商品项（针对在购物车中不存在的商品） 即往购物车里插入一个商品
     * @param cart
     * @param id
     * @param calcPrice
     * @return
     */
    boolean addCartSelectedMer(Integer cart, Integer id, BigDecimal calcPrice);

    /**
     * 删除购物车的商品
     * @param id
     * @return
     */
    boolean deleteCartSelectedMerById(String id,int cart);

    /**
     * 清空购物车
     * @param cart
     * @return
     */
    boolean clearCartSelectedMerById(Integer cart);

    /**
     * 在网页的输入框上直接修改购物车中商品的数量
     * @param id
     * @return
     */
    boolean updateCartSelectedMerNumById(String id,int num,int cart);

    /**
     *提交购物车
     * @param cart
     * @param member
     * @return
     */
    OrdersVo submitShopCar(Integer cart, Integer member);
}
